/**********************************************************************************************/
// dgt_SyntezOAPlugin.h
//
// 
// Copyright Diamant Group 2007
/**********************************************************************************************/
#ifndef _DGT_SYNTEZOAPLUGIN_H_
#define _DGT_SYNTEZOAPLUGIN_H_

#include "dgt_SyntezPlugin.h"
#include "dgt_SmartMacros.h"
#include "dgt_Algorithm.h"
#include "dgt_Circuit.h"

SMART_CLASS( dgt_SyntezOAPlugin );

/**********************************************************************************************/
// Interface of plugin for syntez operation automat
//
interface dgt_SyntezOAPlugin: public dgt_SyntezPlugin
{
	public://///////////////////////////////////////////////////////////////////////////////////
							dgt_SyntezOAPlugin( void ) {};

virtual						~dgt_SyntezOAPlugin( void ) {};

public://///////////////////////////////////////////////////////////////////////////////////

	// Function for starting process of syntez 
	// inAlg - algorythm to input, inTable - logical switch table of triggers
	// returns schema of resulting device

	virtual	dgt_Circuit_Ptr			Synthesize( dgt_Algorithm_Ptr inAlgorithm, dgt_Element_Ptr inTrigger ) = 0;
};

#endif // _DGT_SYNTEZCAPLUGIN_H_
